<?php

/**
 * Ez generálja a archivumot a versenynaptárhoz.
 *
 * @author poli
 */
class TournamentArchivePageGenerator extends BaseContentGenerator {

	public function TournamentArchivePageGenerator($context, $generatorId, $iniParams = null, $skipIniParamsUpdateFromRequest = false) {
		parent::BaseContentGenerator("TournamentArchivePage", $context, $generatorId, $iniParams, $skipIniParamsUpdateFromRequest);
	}

	/**
	 * Mi most használjuk az iniParams tömbünket nagyon is! Úhygogy nosza, dolgozzuk fel
	 * belőle a dolgokat!
	 *
	 * @see site/contentGenerators/BaseContentGenerator#processSavedIniParams()
	 */
	public function processSavedIniParams($savedIniParams) {
		$this->_iniParams = $savedIniParams;
	}

	/**
	 * Hasonló a page enterPage metódusához. Akkor kerül meghívásra, amikor a
	 * content generátor képernyőre kerül először. Azaz: az előző kérésre adott
	 * válaszban még nem ő generálta a content-et
	 *
	 * Itt meg lehet valósítani mindenféle inicializálást, aminek csak egyszer kell
	 * lefutni amíg a generátor aktív.
	 *
	 */
	public function enterContentGenerator() {
		parent::enterContentGenerator();
	}

	/**
	 * Hasonló a page leavePage metódusához. Akkor kerül meghívásra amikor a user
	 * elhagyja a content generátort. Azaz eddig ő generálta a válaszokba a tartalmat, de
	 * most más valaki generálja.
	 *
	 * Itt meg lehet valósítani mindenféle cleanup dolgokat a kilépés kapcsán.
	 */
	public function leaveContentGenerator() {
		parent::leaveContentGenerator();
	}

	public function serveRequest() {
		parent::serveRequest();

		$response = null;

		$tpl = BaseContentGenerator::loadTemplateFile("tournament_archive.tpl.html");
		TextHandler::insertTextsIntoTemplate($tpl, null, 'comp_');
		$tpl->setVariable('app_root_url', APP_ROOT_URL);

		$title = TextHandler::getText('comp_archive_title');
		SiteBase::setPageTitle($title);
		$tournaments = SiteDBHelper::getTournaments(TextHandler::getCurrentLangcode());
		$prevYear = PHP_INT_MAX;
		foreach ($tournaments as $tournament) {
			$tpl->setCurrentBlock('tournament');
			$year = substr($tournament['date_from'], 0, 4);
			if (is_numeric($year) && $prevYear > $year) {
				$tpl->setVariable("yearHtml", '<h3>'.$year.'</h3>');
				$prevYear = $year;
			} else {
				$tpl->setVariable("yearHtml", '');
			}
			$tpl->setVariable('tournamentLink', HydraLinkProvider::getLink('tournamentLink', array('id' => $tournament['id'])));
			$tpl->setVariable('name', $tournament['name']);
			$ts = DBUtil::parseDBFormattedTimestamp($tournament['date_from']);
			$tpl->setVariable('dateFrom', TextUtil::getFormattedTimestampString($ts, "%Y-%m-%d"));
			$ts = DBUtil::parseDBFormattedTimestamp($tournament['date_to']);
			$tpl->setVariable('dateTo', TextUtil::getFormattedTimestampString($ts, "%Y-%m-%d"));
			$tpl->parseCurrentBlock();
		}

		return $tpl->get();
	}

}
?>